import socket
import os
import sys
import struct


def sock_client_image(file_path):
	while True:
		try:
			s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
			s.connect(('192.168.111.52', 6000))
		except socket.error as msg:
			print(msg)
			print(sys.exit(1))
		
		# file_path = '../test.xlsx'  # 输入当前目录下的图片名
		# pack按照图片格式、图片名字、图片大小
		
		fhead = struct.pack(
			b'128sq',  # 图片打包的格式为128sq
			bytes(os.path.basename(file_path), encoding='utf-8'),  # 返回图片文件名，编码字节化
			os.stat(file_path).st_size
		)  # 返回读取文件的相关属性，然后得到其中st_size的数据(记录文件大小)
		s.send(fhead)
		fp = open(file_path, 'rb')  # 打开要传输的图片
		
		while True:
			data = fp.read(1024)  # 读入图片数据,data是图片的数据字节流(由于图片字节很多，这里一次只读取1024个字节)
			if not data:  # 如果读到字节的数据没有了
				print('{0} 文件发送完毕...'.format(file_path))
				break
			s.send(data)  # 以二进制格式发送图片数据(每次发1024个字节)
		fp.close()
		s.close()
		break  # 如果需要一直发送图片则需要在这里进行修改


if __name__ == '__main__':
	import time
	path = "./de1/"
	for i in os.listdir(path):
		filepath = path + i
		sock_client_image(filepath)
		time.sleep(1)
